RELEASE NOTES Motorola Freeware Assemblers for the Macintosh "Version 1.2" INTRODUCTION Version 1.2 of the Motorola Freeware Assemblers was recently released and posted on the Motorola Freeware BBS. Source code and executable files were provided for the IBM PC and clones. I have completed a port to the Macintosh using the source code available to allow Macintosh users access to the improvements of Bruce Olney and Greg Thoman. The entire set of Macintosh XASMs are available in PACKIT form under the file name macasm1p2.pit. Individual files are available as macXX_1p2 where XX represents the device type 00, 01, 04, 05, 09, or 11. QUICK AND DIRTY I have tried to make as few changes and additions to the original source code as possible for the following reasons: 1. To maintain the integrity of the final product (assembled code). 2. To keep the turn around time as short as possible. 3. To allow future enhancements and/or fixes to the IBM assemblers to be applied easily and quickly. The drawback of this approach, however, is that these are not true "Macintosh" applications. Pull-down menus, dialog boxes, etc. are not supported. Once you double-click to launch the application it's back to command line entry. Fortunately, there is not much to do besides enter filenames and output options. (see Motorola Freeware Assembler User's Manual Chapter 3 - Running the Assembler). The user may also redirect the output to a file or printer Once the assembly is done the program quits and your back to the Finder. FILE STRUCTURE The new version of the assembler does support the Hierarchical File Structure (HFS) of the Macintosh. However, because the program is not really "mac-like" you will want to keep things simple or be prepared to do a lot of typing. The following information should be noted: 1. The assembler may be located in any folder of an HFS volume (HD or floppy). It does not have to reside in the root of the volume. 2. The directory (folder) in which the application is launched becomes the default or working directory. (NOTE: The default is changed if another directory is selected when redirecting output to a file or printer - this can be tricky). 3. Files may be specified by either partial or full pathnames as explained below. 4. When assembling multiple source files the pathname for each file must be completely specified. 5. Due to the method used by the assembler to parse the command line input the pathname cannot contain spaces which are normally allowed in Macintosh folder and file names. PATHNAMES A pathname on the Macintosh is a concatenation of volume names, directory names, and file names separated by colons. Assume you organize your files as shown below (indentations indicate levels of hierarchy): BigHD (root name of your hard disk) Development (a folder on the root) Hardware (a folder in Development) Firmware (a folder in Development) - Doit (an assembler source file) - Stopit (an second assembler source file) A full pathname always begins with the name of the root directory; it names the path from the root to a given file or directory, and includes each of the directories visited on that path. For example, a full pathname to the source file Doit would be: BigHD:Development:Firmware:Doit Thus, a full pathname may be used to specify a file anywhere on any mounted volume. A partial pathname describes the path to a file starting from the working directory. Partial pathnames must begin with a colon, except in the case where the partial pathname contains only one name. Thus, if the assembler was located in the directory Development (and redirection of output did not change the working directory), the partial pathname to the file Doit would be: :Firmware:Doit If the assembler was located in the directory Firmware with the source files, the partial pathname to the file Doit would be just: Doit This is the best way to organize things if you don't like to type long pathnames. Just throw everything in the same directory (folder). It is also possible to move up the directory tree by using consecutive colons (::). This notation indicates that the name following a double colon is an offspring of the current locationŐs parent, rather than an offspring of the directory preceding the double colon. Thus, if you launch the assembler in the Firmware directory and want to assemble a file in the Hardware directory named HW_Test the partial path would be: ::Hardware:HW_Test IMPLEMENTATION The Macintosh version of the assemblers were compiled using THINK C 4.0. The THINK compiler provides a set of library routines called the console that make it easy to run code written machines like the IBM PC, VAX etc. that use stdio routines for input and output. These routines set up a window on the Macintosh that acts like a TTY terminal. They also provide a mechanism for simulating the command line invocation used by operating systems like DOS, VMS. The only changes made to the original source code (other than the addition of the console initialization routines) were to add the appropriate header files and some explicit pointer type casting to satisfy the compiler. TESTING Unfortunately, my library of good source code is small and as a result very limited testing has been done on these assemblers. For the 6805 assembler I have compared S record files for some simple files to those produced by the original Macintosh assemblers and found no errors. The other assemblers have not been tested except to double-click them and see if they go. I am relying on those who have gone before to provide good code and the user community to catch the bugs. If you find bugs please report these to the Motorola Freeware BBS so that both the Macintosh and the IBM PC versions can be updated in step. ADDITIONAL INFORMATION This is the only additional documentation provided for Macintosh version of the Motorola Freeware Assemblers v1.2. I refer the user to the asrefnew.man file in the IBM directory of the Motorola BBS for further information about the assemblers. Also check the README.TXT, and ASSEMBLER.DOC files included in the fasrc1p2.arc archive file in the IBM directory for information pertaining to the v1.2 release. Robert Barnes 14 August 1990